package com.superatom.concurrent.basic.executor;

import com.superatom.concurrent.basic.LiftOff;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 使用Executor管理线程，一种新的启动线程方法
 */
public class CachedThreadPool {

    public static void main(String[] args){
        // ExecutorService就是具有生命周期的Executor，例如关闭，知道如何构建恰当的上下文来执行Runnable对象。
        // CachedThreadPool:将为每个任务都创建一个线程。
        // 推荐使用的最优Exector
        ExecutorService exec = Executors.newCachedThreadPool();
        for (int i = 0; i < 5; i++)
            exec.execute(new LiftOff());
        // 防止新任务提交到这个Executor中。
        exec.shutdown();
        System.out.println("Waiting for LiftOff");
    }
}
